#pragma once

#include "space\result.h"
#include <memory>

namespace space {

	enum E_ENGINE_STATE {
		STOPPING,
		RUNNING,
		PAUSED,
		MAX
	};

	class i_engine {
		virtual result run() = 0;

		virtual result pause() = 0;
		virtual result unpause() = 0;

		virtual result shutdown() = 0;

		virtual E_ENGINE_STATE state() = 0;
	};
	typedef std::shared_ptr<i_engine> i_engine_ptr;
};